const app = getApp()
var util = require('./util.js')
var request = new Object()


// 成功提示
request.success = (msg) => {
  wx.showToast({
    title: msg,
    icon: "success",
    duration: 500,
  })
}
// 失败提示
request.error = (msg) => {
    wx.showToast({
      title: msg || '系统内部错误',
      icon: "none",
      duration: 500,
    })
  },


  // 设置token
  request.setToken = function (tokenName, data) {
    console.log('setToken')
    wx.setStorage({
      key: tokenName,
      data: data
    })
  }

//获取token
request.getToken = function (tokenName) {
  return wx.getStorageSync(tokenName)
}
//移除token
request.removeToken = function (tokenName) {
  wx.removeStorageSync(tokenName)
}


// 前端登录接口   //不需要token
request.loginRequest = function (obj) {
  wx.showLoading({
    title: '加载中...',
  })
  return new Promise((resolve, reject) => {
    wx.request({
      url: util.config().api + obj.url,
      data: obj.data,
      method: obj.method,
      header: {
        "Content-Type": "application/json;charset=utf-8"
      },
      success: function (res) {
        // console.log(res)
        wx.hideLoading()
        if (res.data.code === 0) {
          resolve(res)
        } else {
          wx.hideLoading()
          reject(res)
        }
      },
      fail: function (err) {
        wx.hideLoading()
        reject(err)
      }
    })
  })
}
// 前端请求接口   //不需要token
request.noLoginRequest = function (obj) {
  wx.showLoading({
    title: '加载中...',
  })
  return new Promise((resolve, reject) => {
    wx.request({
      url: util.config().api + obj.url,
      data: obj.data,
      method: obj.method,
      header: {
        "Content-Type": "application/json;charset=utf-8"
      },
      success: function (res) {
        // console.log(res)
        wx.hideLoading()
        if (res.data.code === 0) {
          resolve(res)
        } else if (res.data.code === 2003) {
          request.error("异地/重复登陆！")

          setTimeout(() => {
            wx.removeStorageSync('token')
            wx.removeStorageSync('userId')
            // wx.redirectTo({
            //   url: '/pages/index/index',
            // })
            wx.navigateTo({
              url: '/pages/index/index',
            })
          }, 500)

          resolve(res)
        } else if (res.data.code === 2002) {
          request.error("过期/未登录！")

          setTimeout(() => {
            wx.removeStorageSync('token')
            wx.removeStorageSync('userId')
            // wx.redirectTo({
            //   url: '/pages/index/index',
            // })
            wx.navigateTo({
              url: '/pages/index/index',
            })
          }, 500)

          resolve(res)
        } else if (res.data.code === 5001) {
          request.error("系统内部错误！")

          setTimeout(() => {
            wx.removeStorageSync('token')
            wx.removeStorageSync('userId')
            // wx.redirectTo({
            //   url: '/pages/index/index',
            // })
            wx.navigateTo({
              url: '/pages/index/index',
            })
          }, 500)

          resolve(res)
        } else {
          wx.hideLoading()
          reject(res)
        }
      },
      fail: function (err) {
        wx.hideLoading()
        reject(err)
      }
    })
  })
}

// 游戏陪玩请求   //不需要token
request.gameRequest = function (obj) {
  wx.showLoading({
    title: '加载中...',
  })
  return new Promise((resolve, reject) => {
    wx.request({
      url: util.config().gameApi + obj.url,
      data: obj.data,
      method: obj.method,
      header: {
        "Content-Type": "application/json;charset=utf-8"
      },
      success: function (res) {
        // console.log(res)
        wx.hideLoading()
        if (res.data.code === 0) {
          resolve(res)
        } else if (res.data.code === 500) {
          request.error(res.data.desc)
        } else {
          wx.hideLoading()
          request.error("系统内部错误！")
          reject(res)
        }
      },
      fail: function (err) {
        wx.hideLoading()
        request.error("系统内部错误！")
        reject(err)
      }
    })
  })
}

// 前端请求接口   //需要token
// request.wxRequest = function (obj) {
//   wx.showLoading({
//     title: '加载中...',
//   })
//   return new Promise((resolve, reject) => {
//     wx.request({
//       url: util.config().api + obj.url,
//       data: obj.data,
//       method: obj.method,
//       header: {
//         "Content-Type": "application/json;charset=utf-8",
//         'Authorization': 'Bearer ' + request.getToken('token')
//       },
//       success: function (res) {
//         wx.hideLoading()
//         if (res.data.code === 401) {
//           request.removeToken('token')
//           wx.showToast({
//             title: '登录失效，请重新报名授权！',
//             icon: "none",
//             success: function () {
//               wx.redirectTo({
//                 url: '/pages/news/news',
//               })
//             }
//           })
//           resolve(res)
//         } else if (res.data.code === 0) {
//           resolve(res)
//         } else if (res.data.msg == '' && res.data.code != 200) {
//           wx.showToast({
//             title: '请先登录哦！',
//             icon: "none"
//           })
//           request.removeToken('token')
//         } else if (!!res.data.msg && res.data.code != 200) {
//           wx.showToast({
//             title: res.data.msg,
//             icon: "none"
//           })
//         }
//       },
//       fail: function (err) {
//         wx.hideLoading()
//         reject(err)
//         wx.showToast({
//           title: res.data.code + '，' + err.data.msg,
//           icon: "none"
//         })
//       }
//     })
//   })



// }


module.exports = request


// 接口使用
//     var postObj = {
//   url: '/mobileUser/subscribe/getPerson/' + this.data.deptId,
//   method: 'get',
// }
// app.request.wxRequest(postObj).then(res => {
//   if (res.data.code === 200) {
//     console.log('获取可选会见人列表', res)
//   }
// })